在HTML5中新增了一些具有"語意 (Semantic)"的標籤,
用以取代隨處可見、不具任何意思甚至純粹給排版用的 <div>
、<span>
。
Semantic elements = elements with a meaning.
就是希望如下圖,從左改到右 (順便讓廣大的信眾們認識更多英文單字)
(並沒有硬性規定哪個區塊一定要擺在哪個位置)
這樣一來會比純粹使用<div>
來的更富具體意義,增進SEO。
目前有以下具有語意的標籤:
<header>
首要區塊、標題摘要,可用於某區塊內的標題或整個網頁的標題<nav>
導覽列,放選單連結、連到內部或外部網站<main>
主要內容資訊,在網頁中只會出現一次<article>
放獨立表達、獨立於上下文的文章內容(self-contained content)<section>
與內容相關的獨立區塊,放章節、介紹、訊息
(<article>
、<section>
沒有一定要誰包住誰)
<mark>
放被標記或被強調的文字<details>
定義額外的細節、資訊,讓使用者可以觀看或隱藏<summary>
為<detail>
定義一個可見的標題、摘要
<figcaption>
定義圖片區塊<figure>
的標題<figure>
完整內容的圖片區塊,包含照片標題及說明<aside>
放與內文無直接關聯的側邊欄。如:側邊選單、廣告、推薦文章<time>
時間日期<footer>
結尾、作者版權資訊
接下來要準備進入CSS樣式表的階段了。
CSS(Cascading Style Sheets)中文為階層式樣式表。
樣式表 顧名思義描述了元素長的樣子、元素的風格(Style)。
階層式 或者叫做級聯,是層層階階的關係,表示元素會受上一代、上上一代、表現出來的特性會受到世世代代的影響;當同時有多個樣式生效時,元素會按照級別順序套用各自對應的樣式。也許看到這張圖較能理解階層的意思(類似於族譜、基因遺傳圖)。
CSS一定要搭配HTML、沒辦法單獨使用,
就如同一個人要有骨架,骨架長起來 (股價漲起來?) 皮膚才有地方可以長。
樣式(Style)有4種引入方式,來讓HTML能套用到對應樣式,
分這麼多種,第一次接觸時完完全全搞混了。
但其實嚴格來說,引入方式只分成前三種。
將樣式style="..."
屬性寫於HTML檔案,
寫在<tag>
內作為該標籤的屬性之一,與標籤同一行,所以叫做行內是行內,不是內行。 行內不一定內行
...
<p style="color:blue; background-color:yellow;">段落文字</p>
...
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p style="color:blue; background-color:yellow;">段落文字</p>
</body>
</html>
優點:針對標籤各別作指定,淺顯易懂、一目瞭然,不容易指定錯誤
缺點:如果同時多處地方要改,不方便吶
將樣式與對應元素用<style>
包起來,
通常會將style標籤寫於HTML檔案的<head>
之中。
...
<style>
p{
color:blue;
background-color:yellow;
}
</style>
...
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p{
color:blue;
background-color:yellow;
}
</style>
</head>
<body>
<p>段落文字</p>
</body>
</html>
優點:把樣式從Body拉出來到上方,方便統一管理
缺點:拉的不夠徹底,因為下面有更徹底的方式
將樣式與對應元素寫於CSS檔案,
在從HTML內部透過link連結到CSS檔案。
這次不用包<style>
標籤、也不用寫style="..."
屬性,
但引入時要加上<link>
標籤,這一行通常會放在<head>
裡面。
...
<link rel="stylesheet" href="style.css">
...
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="index.css">
</head>
<body>
<p>段落文字</p>
</body>
</html>
index.css
p{
color:blue;
background-color:yellow;
}
優點:全部都拉出來了(?這句話怪怪的) 樣式全拉到外部成為一個.css
檔案。
缺點:嗯... 我暫時想不到。
樣式寫法與 3. 一樣,
但這裡將樣式寫於另一個CSS檔案內,再由別的CSS檔案import他,然後才被HTML套用。
@import "style1.css";
@import url("style2.css");
...
@import
寫法可加上url
、也可不加。
@import
必須寫於CSS檔案中的最前面。
(也合理,不然如果放最後面才import,原本寫好的CSS 被import進來的CSS蓋掉怎麼辦)
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="a.css">
</head>
<body>
<p>段落文字</p>
</body>
</html>
a.css
@import "index.css";
index.css
p{
color:blue;
background-color:yellow;
}